package br.com.base.persistencia.DAO;

import java.io.Serializable;
import java.sql.Connection;
import java.util.List;

import br.com.base.model.impl.Entidade;
import br.com.base.persistencia.filter.IFiltro;


/**
 * @author Milton Domingues
 */
public interface IGenericDAO<ENTIDADE extends Entidade<ID>, ID extends Serializable, FILTRO extends IFiltro> {

	public ENTIDADE buscar(ID id);

	public List<ENTIDADE> consultar(FILTRO filtro);

	public Long consultarCount(FILTRO filtro);

	public void excluir(ENTIDADE entidade);

	public Class<ENTIDADE> getClassEntidade();

	public Connection getConnection();

	public void inserir(ENTIDADE vo);

	public ENTIDADE merge(ENTIDADE vo);
}
